Avoid infinite loop if a mask is zero. (#309222, David Saxton)
authorMatthias Clasen <mclasen@redhat.com>
Thu, 30 Jun 2005 19:11:58 +0000 (19:11 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Thu, 30 Jun 2005 19:11:58 +0000 (19:11 +0000)
2005-06-30  Matthias Clasen  <mclasen@redhat.com>

* gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid
infinite loop if a mask is zero.  (#309222, David Saxton)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gdk/x11/gdkvisual-x11.c

index 385763a09e5dda392a1d208479ac4fc9cd9cff95..2ac66d0ef36a7b457ad83bc03b19589bf55d1bd3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-06-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid
+       infinite loop if a mask is zero.  (#309222, David Saxton)
+
        * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): 
        Clarify the code, gcc 4 complains about predecrement in MAX().
 
index 385763a09e5dda392a1d208479ac4fc9cd9cff95..2ac66d0ef36a7b457ad83bc03b19589bf55d1bd3 100644 (file)
@@ -1,5 +1,8 @@
 2005-06-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid
+       infinite loop if a mask is zero.  (#309222, David Saxton)
+
        * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): 
        Clarify the code, gcc 4 complains about predecrement in MAX().
 
index 385763a09e5dda392a1d208479ac4fc9cd9cff95..2ac66d0ef36a7b457ad83bc03b19589bf55d1bd3 100644 (file)
@@ -1,5 +1,8 @@
 2005-06-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid
+       infinite loop if a mask is zero.  (#309222, David Saxton)
+
        * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): 
        Clarify the code, gcc 4 complains about predecrement in MAX().
 
index 94d3687a1170885c42ab6cb72ce2cd3ff68d082a..b7964079865f3c4b163904e3ba86578a9db79351 100644 (file)
@@ -618,6 +618,12 @@ gdk_visual_decompose_mask (gulong  mask,
   *shift = 0;
   *prec = 0;
 
+  if (mask == 0)
+    {
+      g_warning ("Mask is 0 in visual. Server bug ?");
+      return;
+    }
+
   while (!(mask & 0x1))
     {
       (*shift)++;